import "package:test/test.dart";

void main() {
  // 弱类型
  // var a;
  // a = 'ducafecat';
  // a = 123;
  // a = true;
  // a = {'key': 'val123'};
  // a = ['abc'];
  // print(a);
  test("弱类型",(){
    var a1;
    a1 = 'ducafecat';
    a1 = 123;
    a1 = true;
    a1 = ['abc'];
    a1 = {'key': 'val123'};
    print(a1);
  });


  test("动态定义",(){
    dynamic a = 'doucafecat';
    a = 123;
    a = [1111];
    // a.p();
    print(a);
  });


  test("动态定义 Object",(){
    Object a = 'doucafecat';
    a = 123;
    a = [2222];
    // a.p();
    print(a);
  });

  test("比较 var、dynamic、Object",(){
    var a = 'ducafecat';
    // dynamic a = 'doucafecat';
    // Object a = 'doucafecat';
    // a = 123;
    print(a);
  });


  // 强类型
  test("强类型", (){
    String a = 'ducafeat';
    // a = 123;
    print(a);
  });


  test("常用强类型" , (){
    String a = 'doucafecat';
    print(a.runtimeType);
    int i = 123;
    print(i.runtimeType);
    double d = 0.12;
    print(d.runtimeType);
    bool b = true;
    DateTime dt = new DateTime.now();
    print(dt);
    List l = [ a, i, d, b, dt];
    print(l);
  });
  

  // 默认值
  test("默认值",(){
    String a;
    print(a);
    assert(a == null);
    int i;
    print(i);
    double d;
    print(d);

  });
}


